using CardPlay.Model.CardModel;
using CardPlay.Model.GameModel;
using CardPlay.Model.GameModel.Actions;

namespace CardPlay.DemoPack.Games.SlyFoxVariants
{
    [Game("275E2A8D-2567-45F9-BBCF-AE31641C30B4", LevelOfDifficulty.Medium, LevelOfSkill.ModerateSkill, DurationOfPlay.MoreThan10Minutes, NumberOfDecks = 2, Family = FamilyName)]
    public class Colorado : Twenty
    {
        public Colorado()
        {
            ManualDeal = true;
        }

        protected override void PrepareDealScript(DealScript script)
        {
            script.DealToEach(NamesOfTableaus, "up");
            script.DealRemainingFaceUpTo(NameOfDealTarget);
        }

        protected override bool AllowedToBuildNonEmptyTableau(MovePileAction action)
        {
            return action.SourcePile.Location.Path == NameOfDealTarget;
        }

        protected override bool AllowedToBuildEmptyTableau(MovePileAction action)
        {
            return false;
        }
    }
}